const app = getApp();
import { payOrder, getKjId, kjLogin } from '../utils/requestApi.js';

module.exports = {
  /**
   *  [ 倒计时函数 调用须知 ]: 
   *  @param {[array]} date [设定超时时间]  
  *  列如：  '2019-5-30 14:30:00' 
   * **/
  countdown: (date) => {
    date ? date : date = '2020-5-30 14:30:00';
    var dateArr = date.split(' ');
    if (date.indexOf('T') != -1) dateArr = date.split('T');
    let dateArr2 = dateArr[0].split('-').map((item) => { return parseInt(item) });
    dateArr2[1] -= 1;
    let dateArr3 = dateArr[1].split(':').map((item) => { return parseInt(item) });

    let now = new Date();  // 当前系统时间
    let to = new Date(...dateArr2, ...dateArr3);  // 用户设定的时间
    let deltaTime = to - now;  // 时间差 (单位/毫秒ms)
    let limitHours, limitMin, limitSecond;

    //超时
    if (deltaTime <= 0) {
      return {
        limitHours: '00',
        limitMin: '00',
        limitSecond: '00',
        overTime: true // 倒计时已过
      }
    }
    //计算天数后剩余的毫秒数
    let leave1 = deltaTime % (24 * 3600 * 1000);
    //计算出小时数
    let hours = Math.floor(leave1 / (3600 * 1000));

    //计算小时数后剩余的毫秒数
    let leave2 = leave1 % (3600 * 1000);
    //计算相差分钟数
    let minutes = Math.floor(leave2 / (60 * 1000));

    //计算分钟数后剩余的毫秒数
    let leave3 = leave2 % (60 * 1000);
    //计算相差秒数
    let seconds = Math.round(leave3 / 1000);

    return {
      limitHours: hours < 10 ? '0' + hours : hours,
      limitMin: minutes < 10 ? '0' + minutes : minutes,
      limitSecond: seconds < 10 ? '0' + seconds : seconds,
      overTime: false
    }
  },

  /**
   * [ 实现商品搜索功能 调用须知 ]: 
   * @param {{object}} opt
   * opt键： searchKey --> 搜索关键词[string]   data --> 搜索的商品数据列表[array]  keyName --> 要搜索过滤的键名[string]
   * opt: {searchKey:'123',data:[]，keyName：'ProductName'}
   * return结果: searchResult[ 搜索结果数组 ]
   * 
   *  调用案例： bindinput='onSearch'
        onSearch:function(e){
          this.setData({ list: wx.getStorageSync('initData')}) 每次搜索前复位list商品列表  说明如下：

          //  页面初始化 --> 把页面初始化的数据的缓存到本地  列如：
          //  wx.setStorage({
          //   key: 'initData',
          //   data: res.data
          //  })

          let searchKey = e.detail.value;
          let data = this.data.list;
          let keyName = 'ProductName';
          this.setData({
            list: goodsSearch({ searchKey, data, keyName })
          })
        }
   *  
   */
  goodsSearch: function(opt){
    let searchResult = [];
    opt.data.forEach((item, index) => { 
      if (item[opt.keyName].indexOf(opt.searchKey) != -1) searchResult.push(item);
    })
    if (opt.searchKey != '') return searchResult;
  },

  //跳转登录页面
  toLoginPage: function () {
    wx.reLaunch({
      url: 'pages/authorizationLogin/authorizationLogin',
    })
  },

  // 支付订单
  toPay: function (id, callback, failBack){
    wx.showLoading({ title: '提交订单中...' })
    payOrder({ orderId: id }).then(res => {
      if (res.data.Status == 'Success') {
        wx.hideLoading();
        let { prepayId, nonceStr, timeStamp, sign } = res.data.Data;
        wx.requestPayment({
          timeStamp: timeStamp,
          nonceStr: nonceStr,
          package: 'prepay_id=' + prepayId,
          paySign: sign,
          signType: 'MD5',
          success(res) { 
            callback(res) 
          },
          fail(res) {
            failBack();
          }
        })
      } else wx.showToast({ icon: 'none', title: res.data.Message })
    })
  },

  //跳转 小程序 
  openProgram(opt){
    console.log('点击跳转===', opt);
    wx.navigateToMiniProgram({
      appId: opt.appId,
      path: opt.path,
      extraData: { [opt.attrName]: opt.attrValue },
      envVersion: 'trial',
      success(res) {
        console.log('小程序成功===', res)
      }
    })
  }

}